latextableI.m
Creates LaTeX tables of equilibrium thresholds (Table I in Abbring and Campbell's ``Last-In First-Out Oligopoly Dynamics'').
At its conclusion, the string tablestra has the table of entry thresholds, while tablestrb has the analogous table of exit thresholds.
Contents
Acquire thresholds and transform them.
If the variables entryThresholds and exitThresholds do not exist, run experimentI.m to create them. With the thresholds in hand, transform them into levels for reporting.
newrun=~(exist('entryThresholds','var') && exist('exitThresholds','var')); if newrun; newrunHOLD=1; experimentI; end entryThresholds=exp(entryThresholds); exitThresholds=exp(exitThresholds);
Create the LaTeX table
The LaTeX table's first panel reports the entry thresholds and its second panel reports the exit thresholds. We place these into separate tabular environments.
% Create strings with LaTeX tabular overhead headerstr1 = ['\begin{tabular}{*{' num2str(size(entryThresholds,2)+1) '}{c}}']; %Econometrica requires tables to begin with a double rule. This inserts one if doublerule=='Yes'. if strcmp(doublerule,'Yes') headerstr1doublerule='\hline\hline\\'; else headerstr1doublerule=' '; end headerstrCase=['\multicolumn{' num2str(size(entryThresholds,2)+1) '}{c}{' descstr '}\\ \\']; %This places a row in the tabular describing the specification. headerstr2a = [' & \multicolumn{' num2str(size(entryThresholds,2)) '}{c}{Entry Thresholds} \\']; headerstr2b = [' & \multicolumn{' num2str(size(exitThresholds,2)) '}{c}{Exit Thresholds} \\']; headerstr3a = ['$\sigma $' num2str(1:1:size(entryThresholds,2),' & $\\overline{C}_{%1.0f}$') ' \\ \hline']; headerstr3b = ['$\sigma $' num2str(1:1:size(entryThresholds,2),' & $\\underline{C}_{%1.0f}$') ' \\ \hline']; closestr = '\end{tabular}'; % Contents contentstra = ' '; contentstrb = ' '; for iter=1:size(entryThresholds,1); addThis= num2str(sigmaG(iter),'%2.2f '); for jiter=1:size(entryThresholds,2) if ~isnan(entryThresholds(iter,jiter)) addThis = [addThis num2str(entryThresholds(iter,jiter),'& \\makebox[24pt]{%2.2f}')]; else addThis = [addThis ' & \makebox[24pt]{ }']; end end addThis = [addThis '\\ ']; contentstra = strvcat(contentstra,addThis); addThis = num2str(sigmaG(iter),'%2.2f '); for jiter=1:size(exitThresholds,2) if ~isnan(exitThresholds(iter,jiter)) addThis = [addThis num2str(exitThresholds(iter,jiter),'& \\makebox[24pt]{%2.2f}')]; else addThis = [addThis ' & \makebox[24pt]{ }']; end end addThis = [addThis '\\ ']; contentstrb = strvcat(contentstrb,addThis); end
Assemble the final output.
tablestra=strvcat(headerstr1,headerstr1doublerule,headerstrCase,headerstr2a,headerstr3a,contentstra,closestr); tablestrb=strvcat(headerstr1,headerstr2b,headerstr3b,contentstrb,closestr);
Report output if this is a test run.
if exist('newrunHOLD','var') disp(entryThresholds); disp(tablestra); disp(exitThresholds); disp(tablestrb); clear newrunHOLD end
0.4991 1.0000 1.4993 1.9937 2.4968 2.9892 3.4903 3.9948 0.4795 0.9851 1.5068 2.0442 2.5728 3.1268 3.6147 NaN 0.4630 1.0000 1.5605 2.1383 2.7047 3.2059 NaN NaN 0.4584 1.0202 1.6161 2.1924 2.5857 NaN NaN NaN \begin{tabular}{*{9}{c}} \hline\hline\\ \multicolumn{9}{c}{$\pi(N)=4$}\\ \\ & \multicolumn{8}{c}{Entry Thresholds} \\ $\sigma $& $\overline{C}_{1}$ & $\overline{C}_{2}$ & $\overline{C}_{3}$ & $\overline{C}_{4}$ & $\overline{C}_{5}$ & $\overline{C}_{6}$ & $\overline{C}_{7}$ & $\overline{C}_{8}$ \\ \hline 0.00& \makebox[24pt]{0.50}& \makebox[24pt]{1.00}& \makebox[24pt]{1.50}& \makebox[24pt]{1.99}& \makebox[24pt]{2.50}& \makebox[24pt]{2.99}& \makebox[24pt]{3.49}& \makebox[24pt]{3.99}\\ 0.05& \makebox[24pt]{0.48}& \makebox[24pt]{0.99}& \makebox[24pt]{1.51}& \makebox[24pt]{2.04}& \makebox[24pt]{2.57}& \makebox[24pt]{3.13}& \makebox[24pt]{3.61} & \makebox[24pt]{ }\\ 0.10& \makebox[24pt]{0.46}& \makebox[24pt]{1.00}& \makebox[24pt]{1.56}& \makebox[24pt]{2.14}& \makebox[24pt]{2.70}& \makebox[24pt]{3.21} & \makebox[24pt]{ } & \makebox[24pt]{ }\\ 0.15& \makebox[24pt]{0.46}& \makebox[24pt]{1.02}& \makebox[24pt]{1.62}& \makebox[24pt]{2.19}& \makebox[24pt]{2.59} & \makebox[24pt]{ } & \makebox[24pt]{ } & \makebox[24pt]{ }\\ \end{tabular} 0.4360 0.8737 1.3100 1.7419 2.1815 2.6248 3.0496 3.4903 0.3791 0.7634 1.1503 1.5450 1.9348 2.3164 2.7047 NaN 0.3345 0.6907 1.0513 1.4120 1.7683 2.1170 NaN NaN 0.2822 0.6376 0.9704 1.3034 1.6000 NaN NaN NaN \begin{tabular}{*{9}{c}} & \multicolumn{8}{c}{Exit Thresholds} \\ $\sigma $& $\underline{C}_{1}$ & $\underline{C}_{2}$ & $\underline{C}_{3}$ & $\underline{C}_{4}$ & $\underline{C}_{5}$ & $\underline{C}_{6}$ & $\underline{C}_{7}$ & $\underline{C}_{8}$ \\ \hline 0.00& \makebox[24pt]{0.44}& \makebox[24pt]{0.87}& \makebox[24pt]{1.31}& \makebox[24pt]{1.74}& \makebox[24pt]{2.18}& \makebox[24pt]{2.62}& \makebox[24pt]{3.05}& \makebox[24pt]{3.49}\\ 0.05& \makebox[24pt]{0.38}& \makebox[24pt]{0.76}& \makebox[24pt]{1.15}& \makebox[24pt]{1.54}& \makebox[24pt]{1.93}& \makebox[24pt]{2.32}& \makebox[24pt]{2.70} & \makebox[24pt]{ }\\ 0.10& \makebox[24pt]{0.33}& \makebox[24pt]{0.69}& \makebox[24pt]{1.05}& \makebox[24pt]{1.41}& \makebox[24pt]{1.77}& \makebox[24pt]{2.12} & \makebox[24pt]{ } & \makebox[24pt]{ }\\ 0.15& \makebox[24pt]{0.28}& \makebox[24pt]{0.64}& \makebox[24pt]{0.97}& \makebox[24pt]{1.30}& \makebox[24pt]{1.60} & \makebox[24pt]{ } & \makebox[24pt]{ } & \makebox[24pt]{ }\\ \end{tabular} Experiment took 104.89 seconds